First go to <your server location>\plugins\RecipeManager\recipes folder and create a text file (.txt extension).
Then you can open that file with a text editor and start writing recipes.
You can have as many recipe files and recipes per file as you want. You can also create folders for organization.
Required fields are surrounded by < >
Optional fields are surrounded by [ ]
craft [recipe name] // A recipe name is optional and can be skipped <material> // This material is required = <material> // The result material is also required
// Do not type <, >, [ or ] craft [my recipe] <cobblestone> = <cobblestone>
// Correct way to write the above recipe // Note that characters outside of <, >, [ and ] are constants and never change craft my recipe // 'craft' is a constant here cobblestone = cobblestone
NOTE: If you are having issues with special characters not showing up:
- Make sure that your recipe files are saved as UTF-8 and
- Include the following flag: " -Dfile.encoding=UTF-8" in your startup script.
Item / Ingredient formats:
material // Material name or alias. See name index.html and 'item aliases.yml'. // Material and data // 'data' is the damage/durability of an item if it has any (tools, weapons, etc.) or a data name defined in 'item aliases.yml', defaults to 0 material:data // Material Choice (Multiple material options for a single slot) material[, ..] // '..' means that the format can be repeated as seen below material, material2, material3
Tags and aliases:
// Material can also be defined by tags and aliases, which act as a material choice without having to write all materials // Tags (see 'name index.html') tag:tagname t:tagname // Aliases are RecipeManager's equivalent to tags, but you can define them yourself in 'choice aliases.yml' alias:aliasname a:aliasname
Tag Example:
// tag:sand is equivalent to 'sand, red_sand' craft tag:sand = cobblestone
Result formats:
// Simple material = material // Material and data // 'data' is the damage/durability of an item if it has any (tools, weapons, etc.) or a data name defined in 'item aliases.yml', defaults to 0 = material:data // Material with data and stack amount // 'amount' is stack amount, defaults to 1 = material:data:amount
Flags are how you can modify an ingredient or result. See advanced recipes.html and recipe flags.html for more examples.
craft cobblestone = cobblestone @ingredientcondition cobblestone | name Old Cobble @name Test Cobblestone @lore Test Lore @lore <red>Now in red
Certain recipes support having multiple results.
Only one result type can be crafted at one time, therefore each result has a set chance of success.
craft pattern aaa | aba | aaa a dirt b grass_block = wheat_seeds = pumpkin_seeds = melon_seeds = beetroot_seeds
craft dirt + dirt + dirt dirt + grass_block + dirt dirt + dirt + dirt = wheat_seeds = pumpkin_seeds = melon_seeds = beetroot_seeds
Additionally you can set 'air' as result to make the recipe fail by that chance, which gives no result item but still decreases ingredients.
craft pattern aaa | aba | aaa a t:sand b air = 40% bone = 10% quartz = .1% diamond = air
craft t:sand + t:sand + t:sand t:sand + air + t:sand t:sand + t:sand + t:sand = 40% bone = 10% quartz = .1% diamond = air
Chances must be a total of 100%, if you do not define the chance for one or more items the chance will be evenly calculated for the remaining chance up to 100%.
The options for this can be extended even more with flags, be sure to see the advanced recipes.html file after reading this one.
Recipe names are used by recipe books.
If you define a custom name it must be unique and between 3 and 32 characters long (18 recommended).
The custom name will be displayed in the books if defined, otherwise it will use the result.
In the 'books/*.yml' files the recipe names (custom or auto-generated) are used to add and sort recipes in the books.
CRAFT [recipe name] [@ recipe flags] [group name] pattern abc | def | ghi <letter> <material:[data][, ...]> [@ ingredient flags] [... more ingredients] = [chance]% <material:[data]:[amount]> [@ result flags] [... more results]
The [group name] defines the knowledge book group this recipe belongs to.
The pattern line defines the shape of the recipe grid.
<letter> must be a letter that is defined in the pattern line above
Ingredients can be defined by a material with an optional data.
[@ ingredient flags] supports any flags that directly modify an ingredient. This allows for customization of ingredients.
Multiple ingredients can be defined in two ways:
As for the result the 'chance%' part is optional and if defined then 'chance' must be a number between 0.0 and 100.0 (yes, accepts decimals)
The '[...]' part means that you can repeat the previous statement, so you can define more than one result and the recipe will randomly pick one of the results.
You can avoid defining the chance number or use *% even to allow it to be calculated.
You can also add a chance of failure to the recipe by using fail, air or 0 as one of the results.
// this is just a comment by the way // a hoe craftable in player inventory craft pattern aa | b a oak_planks b stick = wood_hoe
// fragile bowl named recipe craft Bowl craft attempt pattern aba | ca a stick b oak_planks c air = bowl // undefined chance, will be calculated = 25% fail // 'fail' is alias for 'air'
// Multiple ingredients that can match. Each ingredient can have as many material choices as you'd like, // as long as the combination of ingredients is still unique to each recipe craft pattern ab a cobblestone, stone b dirt, grass_block = light_gray_terracotta
CRAFT [recipe name] [group name] <material[, ...]> + [material[, ...]] + [material[, ...]] [material[, ...]] + [material[, ...]] + [material[, ...]] [material[, ...]] + [material[, ...]] + [material[, ...]] = [chance]% <material:[data]:[amount]> [...]
The [group name] defines the knowledge book group this recipe belongs to.
The ingredients are in the shape of the recipe grid, it will also work if horizontally mirrored.
NOTE: The recipe is exactly the same if you place the ingredients reversed horizontally, it's how the game works.
Number of ingredients is optional, you can specify only 1 or all 9 of them if you want.
Specifying a square of 4 or smaller makes it work in player's inventory crafting.
The '[, ...]' part means that you can add multiple ingredients as matches for that grid item.
As for the result the 'chance%' part is optional and if defined then 'chance' must be a number between 0.0 and 100.0 (yes, accepts decimals)
The '[...]' part means that you can repeat the previous statement, so you can define more than one result and the recipe will randomly pick one of the results.
You can avoid defining the chance number or use *% even to allow it to be calculated.
You can also add a chance of failure to the recipe by using fail, air or 0 as one of the results.
// this is just a comment by the way // a hoe craftable in player inventory craft oak_planks + oak_planks stick = wood_hoe
// fragile bowl named recipe craft Bowl craft attempt stick + oak_planks + stick air + stick = bowl // undefined chance, will be calculated = 25% fail // 'fail' is alias for 'air'
// Multiple ingredients that can match. Each ingredient can have as many material choices as you'd like, // as long as the combination of ingredients is still unique to each recipe craft cobblestone,stone + dirt,grass_block = light_gray_terracotta
COMBINE [recipe name] [@ recipe flags] [group name] pattern abcdefghi <letter> <material:[data][, ...]> [@ ingredient flags] [... more ingredients] = [chance]% <material:[data]:[amount]> [@ result flags] [... more results]
Unlike shaped recipe, this recipe's ingredients can be placed in any order anywhere on the grid.
The [group name] defines the knowledge book group this recipe belongs to.
The pattern line defines the pattern of the recipe grid, where similar characters means an item is used more than once.
This recipe also supports multiple results just like shaped recipe, read above for information.
// 3 sulphur + 2 sand = 2 TNT combine pattern aaabb a sulphur b sand = TNT:0:2
// smash 2 diamonds and pray for something good combine Smash 2 diamonds and pray pattern aa a diamond = 0.1% diamond:0:32 = coal:0:4 // let it calculate the chance evenly for this and the next two = iron_ingot = gold_ingot = 75% fail
COMBINE [recipe name] [group name] <material[, ...]:[amount]> + [...] = [chance]% <material:[data]:[amount]> [...]
Unlike shaped recipe, this recipe's ingredients can be placed in any order anywhere on the grid.
The [group name] defines the knowledge book group this recipe belongs to.
You can specify up to 9 items added up.
The optional amount can only be added at the end of a list of materials
EXAMPLE: cobblestone,stone:5 would be valid and expect the recipe to have 5 ingredients of either cobblestone OR stone
This recipe also supports multiple results just like shaped recipe, read above for information.
// 3 sulphur + 2 sand = 2 TNT combine sulphur:0:3 + sand + sand = TNT:0:2
// smash 2 diamonds and pray for something good combine Smash 2 diamonds and pray diamond + diamond = 0.1% diamond:0:32 = coal:0:4 // let it calculate the chance evenly for this and the next two = iron_ingot = gold_ingot = 75% fail
SMELT [recipe name] [@ recipe flags] [group name] [xp amount] <material:[data][, ...]> % [time] [@ ingredient flags] [... more ingredients] & [material:[data]] = [chance]% <material:[data]:[amount]> [@ result flags] // one result max!
The [group name] defines the knowledge book group this recipe belongs to.
The [xp amount] defines the amount of xp given for the furnace recipe. Can be a decimal value. Examples ("xp 2", "xp .5", "xp 1.1"). Defaults to 0.
The first '<material[, ...]>' is the ingredient.
(optional) '% [time]' can be the time to smelt, 'time' should be a 'instant', a float number or a range of float numbers separated by a dash. Default time: 10
(optional) '& [material:[data]]' can be an item to act as the ONLY fuel for this recipe (no need to have a fuel recipe for the item!)
And '= [chance]% <material:[data]:[amount]>' is the result with optional success chance but this recipe type only supports 1 result!
// smelt gold_ingot to ore smelt gold_ingot = gold_ore
// glowstone and bottle as fuel makes an exp bottle smelt Exp Bottle Alchemy glowstone % 20.5-30 // random cook time between 20.5 and 30 seconds & bottle // fuel = 25% exp_bottle // 25% chance to get the result, rest 75% will result in nothing
BLASTING [recipe name] [@ recipe flags] [group name] [xp amount] <material[, ...]>:[data] % [time] [@ ingredient flags] [... more ingredients] & [material:[data]] = [chance]% <material:[data]:[amount]> [@ result flags] // one result max!
Works the same as SMELT RECIPES, but for BLAST FURNACES
Default time: 5
See SMELT RECIPE for examples
SMOKING [recipe name] [@ recipe flags] [group name] [xp amount] <material[, ...]>:[data] % [time] [@ ingredient flags] [... more ingredients] & [material:[data]] = [chance]% <material:[data]:[amount]> [@ result flags] // one result max!
Works the same as SMELT RECIPES, but for SMOKERS
Default time: 5
See SMELT RECIPE for examples
FUEL [recipe name] <material:data> % <time> ...
Adds a fuel with the specified burn time.
'time' is required and can be a float number or a range of float numbers separated by a dash.
The '...' part means you can specify more than one item, they are all added just like individual fuel recipes.
FUEL sulphur % 0.75 // see advanced recipes.html for how to make this EXPLODE! jackolantern % 20 // 'jackolantern' is alias for 'jack_o_lantern'
CAMPFIRE [recipe name] [@ recipe flags] [group name] [xp amount] <material[, ...]>:[data] % [time] [@ ingredient flags] [... more ingredients] = [chance]% <material:[data]:[amount]> [@ result flags]
The [group name] defines the knowledge book group this recipe belongs to.
The [xp amount] defines the amount of xp given for the furnace recipe. Can be a decimal value. Examples ("xp 2", "xp .5", "xp 1.1"). Defaults to 0.
The first '<material[, ...]>' is the ingredient.
(optional) '% [time]' can be the time to cook, 'time' should be a 'instant', a float number or a range of float numbers separated by a dash. Default time: 30
NOTE: Due to API limitations, random cook times will only be set random on server start for campfire recipes.
And '= [chance]% <material:[data]:[amount]>' is the result with optional success chance.
STONECUTTING [recipe name] [group name] <material[, ...]>:[data] [@ ingredient flags] [... more ingredients] = [chance]% <material:[data]:[amount]> [@ result flags]
The [group name] defines the knowledge book group this recipe belongs to.
The first '<material[, ...]>' is the ingredient.
Multiple recipes can be added with the same ingredient as long as the result is different for each.
Limited Flag support
COMPOST [recipe name] [@ recipe flags] <material[, ...]>:[data] % [chance per level] % [levels] [@ ingredient flags] [... more ingredients] = [chance]% <material:[data]:[amount]> [@ result flags]
The first '<material[, ...]>' is the ingredient.
(optional) '% [chance per level]' is the percentage chance that the level will be increased by [levels]. Value can be a float number >0 and <=100. Default is 100.
(optional) '% [levels]' is the levels to add to the composter. Value can be a float number >0 and <=7. Default is 1.
While the composter is being used for a recipe, it will be locked to that recipe (or the same result from another recipe), so no conflicting recipes can be made.
ANVIL [recipe name] [@ ingredient flags] <letter> <material>:[data][, ...] % [experience levels] % [allowrename or true] % [anvil damage chance] [@ ingredient flags] [... more ingredients] = [chance]% <material:[data]:[amount]> [@ result flags]
Anvils have an implied pattern of "ab". You do not need to set a pattern like you would in a craft/combine recipe.
An ingredient with a letter of "a" is the left ingredient.
An ingredient with a letter of "b" is the right ingredient.
(optional) '% [experience levels]' is the experience levels per craft and shown in the anvil.
(optional) '% [allowrename or true]' will enable renaming. Will add an extra experience level to the cost and set the name after all flags. Defaults to false.
(optional) '% [anvil damage chance]' will adjust the chance to damage the anvil on craft. Default is 12. Allowed values from 0-300. Over 100 will damage multiple levels. Ex: 150 will damage 1 level with a 50% chance of damaging a second.
ANVIL [recipe name] <material[, ...]> + <material[, ...]> % [experience levels] % [allowrename or true] % [anvil damage chance] = [chance]% <material:[data]:[amount]>
The first '<material[, ...]>' is the left ingredient.
The second '<material[, ...]>' is the right ingredient.
(optional) '% [experience levels]' is the experience levels per craft and shown in the anvil.
(optional) '% [allowrename or true]' will enable renaming. Will add an extra experience level to the cost and set the name after all flags. Defaults to false.
(optional) '% [anvil damage chance]' will adjust the chance to damage the anvil on craft. Default is 12. Allowed values from 0-300. Over 100 will damage multiple levels. Ex: 150 will damage 1 level with a 50% chance of damaging a second.
GRINDSTONE [recipe name] [@ ingredient flags] <letter> <material>:[data][, ...] [@ ingredient flags] [... more ingredients] = [chance]% <material:[data]:[amount]> [@ result flags]
Grindstones have an implied pattern of "ab". You do not need to set a pattern like you would in a craft/combine recipe.
An ingredient with a letter of "a" is the top ingredient.
An ingredient with a letter of "b" is the bottom ingredient.
GRINDSTONE [recipe name] <material[, ...]> + <material[, ...]> = [chance]% <material:[data]:[amount]>
The first '<material[, ...]>' is the top ingredient.
The second '<material[, ...]>' is the bottom ingredient.
CARTOGRAPHY [recipe name] [@ ingredient flags] <letter> <material>:[data][, ...] [@ ingredient flags] [... more ingredients] = [chance]% <material:[data]:[amount]> [@ result flags]
Cartography Tables have an implied pattern of "ab". You do not need to set a pattern like you would in a craft/combine recipe.
An ingredient with a letter of "a" is the top ingredient.
An ingredient with a letter of "b" is the bottom ingredient.
CARTOGRAPHY [recipe name] <material[, ...]> + <material[, ...]> = [chance]% <material:[data]:[amount]>
The first '<material[, ...]>' is the top ingredient.
The second '<material[, ...]>' is the bottom ingredient.
BREW [recipe name] [@ recipe flags] <letter> <material:[data][, ...]> % [time] [@ ingredient flags] [... more ingredients] = [chance]% <material:[data]:[amount]> [@ result flags]
Brewing Stands have an implied pattern of "ab". You do not need to set a pattern like you would in a craft/combine recipe.
An ingredient with a letter of "a" is the main ingredient.
An ingredient with a letter of "b" is the potion.
(optional) '% [time]' can be the time (in ticks) to brew. Values can be: 'instant' for instant brewing, a single integer (ex: '200') for a fixed number of ticks, or a range for a random number of ticks between the two values (ex: '200 - 800'). Defaults to: 400.
And '= [chance]% <material:[data]:[amount]>' is the result with optional success chance.
brew a nether_wart @name &cTest b potion @potion type water = stone @name <red>Test Stone. Please Ignore
BREW [recipe name] <material:[data]:[amount]> // ingredient <material:[data]> // potion = [chance]% <material:[data]:[amount]> [...]
The first '<material>:[data]' is the ingredient with optional data and amount.
The second '<material>:[data]' is the potion with optional data.
And '= [chance]% <material:[data]:[amount]>' is the result with optional success chance.
Note: Currently requires a vanilla brewing recipe, but can have customized items.
brew nether_wart potion = stone @name <red>Test Stone. Please Ignore @ingredientcondition nether_wart | name &cTest @ingredientcondition potion | potion type water
Use the /rmextract command to export all vanilla recipes.
A file will be generated at "/plugins/RecipeManager/extracted/" (For Legacy versions: "/plugins/RecipeManager/recipes/disabled/")
Open the generated file in a text editor and search for a recipe you would like to remove.
For example, an iron sword should look similar to this:
craft iron_ingot iron_ingot stick = iron_sword:0:1
After finding the recipes that you want to remove, copy them over to a file in "/plugins/RecipeManager/recipes/"
Once the recipes are in your new file, add @remove per the Remove Syntax below.
To remove an individual recipe, place @remove just after the craft/combine/smelt line:
craft @remove iron_ingot iron_ingot stick = iron_sword:0:1
Place @remove at the top of the file to remove all recipes in the file
@remove craft iron_ingot iron_ingot stick = iron_sword:0:1 [... more recipes]
For more customization options and examples see advanced recipes.html.
If you don't get these instructions, please stop by Discord and ask for assistance. Please be as descriptive as possible in your questions.
Comments and Spacing
Default supported comments: //, /* */ and #
The text in recipe files can be any letter case and can have any amount of spaces, tabs and new lines.
// Recipe files support any casing craft cobblestone = cobblestone // Add any amount of new lines between recipes CRAFT COBBLESTONE = COBBLESTONE // Space/Tabs at the beginning are fine as well CrAfT cobbleSTONE = COBBLEstone // Spacing does not need to be consistent craft cobblestone = cobblestone